OAF - Oblivion Animation fixer V1.2
Copyright Robert K. Guy (c) 2006,2007
V1.2
8 April 2007

Changes in v1.2:
Fixes an error finding the animation variable when the savegame is made inside an Oblivion Gate.

Changes in v1.1:
Fixed error in calculating one block's size.
Added display of all 4 bytes and float value.

What this does:
This program, OAF, will un-stick your animations in Oblivion.  All types of animations can become stuck in Oblivion such as fires, torches, magic effects, doors and moveable platforms.  You will know when this happens.  It is usually reported to occur in games with greater than 200 hours of playtime.  This program should not be used to fix anything except stuck animations and can not be used to prevent stuck animations.  This program does not fix corrupted savegame files.  The program modifies one byte in your savegame file that has been found to be involved in this problem.  This solution should be considered an un-official fix which will not be supported by Bethesda Softworks, the publisher of the game Oblivion.

OAF does not permanently fix your savegame, you may run it again at any time on any future savegame.


Disclaimer:
Use this program at your own risk.  Backing-up your savegame files is always a good idea.  I take no responsibility for the use of this program on your computer.  I believe this program does fix the stuck animations and causes no other un-wanted side effects.  This program cannot harm your original savegame files or any other file on your computer.  The program is a stand alone application, it does not require any other support files and does not use your registry.  It is intended to be run under Windows XP (SP1 or SP2) and will run under any version of windows.

Installation:
The archive contains the program 'OAF.exe' and this textfile 'OAF_v1_2.txt', un-zip this archive into your Oblivion savegame folder or any other folder.  If installing this over the V1.0 version you will need to answer yes when asked to overwrite the files.  You do not need to uninstall or remove the previous version although you can.  Double click the OAF.exe to run it or create a shortcut to program.  You can also associate your savegame files (.ess) with this program (OAF) so that a menu item will be found when you right click a savegame file.  When you have an association with this program the selected savegame will be loaded into OAF when it runs.  This program will also accept a command line argument that is the full pathname of the savegame to be loaded.

Your savegame folder is by default 'C:\Documents and Settings\<user>\My Documents\My Games\Oblivion\Saves\' where <user> is your user logon name.

Requirements:
OAF runs under any version of Windows.  You must have available enough harddisk space to store the modified savegame file - it will be exactly the same size as the original savegame file it was made from.  OAF does not check to see whether there is enough space available, it will notify you that it can't write the modified file when there is not enough space.  OAF will fix savegames created by the un-patched Oblivion V1 and savegames created by the Oblivion V1.1/V1.1.5 beta patch.  This version (v1.2) will also open XBox savegames when they have been made available to a PC using an XBox memory cartridge adapter.

Updates:
OAF may be updated if a future Oblivion patch changes the file structure and the animation problem still persists.

Quickstart:
Unzip the file OAF.exe into your savegame folder.
Double-click the OAF.exe program file.
Click 'Open' to select a savegame file and read that file into memory.
Click 'Save' to change the name of the modified savegame file.
Change the 'Preset' value to set the value that the target byte will be changed to.
Click 'FixMe' to make the changes and write out the modified file.
Click 'Close' to close the program.


Using OAF:
Double click 'OAF.exe' or the shortcut you may have made, or right-click the savegame and click on the association you may have made.

Press the 'Close' button at any time to close the program.  The 'FixMe' button is initially disabled, no changes are made to any file until the 'FixMe' button is pressed.

If you do not use a file association OAF will run and you must open a savegame.  Press the 'Open' button and navigate to a savegame folder and savegame file using the standard Windows open-file dialog.  In this version (v1.2) the 'Files of type' is set to 'All files', you can restrict the selection to only savegame type files by setting the 'Files of type' editbox to 'Savegames'.  When you have selected a file in the dialog box, double click the file or press open in the dialog box.  OAF will fill the top edit-box with the full pathname of the file you've selected and fill the bottom edit-box with a suggested name for the modified file. The name of the modified file is just the name of the original file with 'OAF_' preceding the name.  You can change the name of the modified file by pressing the 'Save' button.  The 'Save' button does not save the file, it only changes the name.  The edit-boxes are read-only and you can not type in them.  The 'Open' and 'Save' dialogs are used to change the names and enforce proper file selection.  Both dialogs have a memory and will open in the last folder you used.  You can save files in a different folder than the original file was in but the modified savegame file must be in the .../Oblivion/Saves folder to load it in the game.  You can press the 'Open' button at any time to select a different file.

If you have associated your savegame files with OAF then the program will open with the name of the savegame in the top edit-box and a modified name to be used for the modified savegame in the lower edit-box.  You can press the 'Open' button to select a different file.  You can press the 'Save' button to change the name of the modified file.

When the savegame file has been properly opened OAF immediately scans the file.  It will check to see that it is a valid savegame and will notify you if any errors are found.  If the file is successfully read the 'FixMe' button will be enabled and you will see a hex address in the 'Address' box, a hex byte in the 'Byte' box, all 4 bytes in the next box and the float value of the 4 bytes last.  All of these boxes are read-only, except for the 'Preset' control, and only useful for diagnostic purposes.  The hex address is the location of the troublesome byte and the Byte box contains the troublesome byte itself.  The game changes this byte as your game progresses, it can be any hex value in the range 00..FF.  No particular significance has been given for the value found here except that a hex value of 49 is found in games experiencing stuck animations.  You may want to record these two hex numbers in the unlikely event that you might need to restore the savegame file or in the event of some unforeseen program error or you may just want a record for diagnostic purposes.  The 4 bytes box contains all 4 bytes of the value where the troublesome byte is the first byte.  The float box is the floating point value of those 4 bytes.

The original savegame file is never changed by OAF - a new modified copy will be made so you should never need to restore the savegame file.

The 'Preset' box contains a suggested replacement for the troublesome byte.  It has been found that a value of 40..48 un-sticks the animation and a value of 49 is found in all stuck savegames.  Other values have not been well tested.  The value in the 'Preset' box can be changed - it is by default 40 - it is a value that users have found to fix the problem.  A value of 45 has been found to work as well.  You can change the 'Preset' to any hex value in the range 00..FF using the mouse or keyboard at any time before pressing the 'FixMe' button.  When the 'FixMe' button is pressed the 'Preset' value is written to the modified savegame and the modified savegame is written to disk.

When the 'FixMe' button is enabled, click it to create the modified savegame.  If it is successful the 'FixMe' button will become disabled and you can then open a new savegame or press the 'Close' to close the program.  You will be notified if an error occurs during the save.

LICENSE
_______
Copyright 2006,2007 Robert K. Guy.

You may not make money with this free version of OAF in any way
whatsoever but you may freely distribute this program as long as no
charge is applied to that distribution.  You are also free to upload
this program to any other site that does not charge a fee for access
or for downloads.  You may only distribute this program in unmodified
form including the complete contents of this archive.

You MUST contact the author regarding commercial distribution of OAF.
Any such distribution without prior consent is strictly prohibited.

You are not permitted to modify, translate, reverse engineer, decompile,
disassemble or create derivative works based on OAF.

DISCLAIMER
The author shall NOT be held responsible for any damages arising from the
use of OAF. OAF is provided on an AS IS basis, without
warranty of any kind, including without limitation the warranties of
merchantability, fitness for a particular purpose and non-infringement.
The entire risk as to the quality and performance of OAF is borne
by you. Should OAF prove defective, you assume the entire cost of
any service and repair.

This is Freeware.

Credits:
OAF was created with Borland Delphi.
The troublesome byte was first located and described by "The other Felix".
The file structure was decoded by me.

Robert K. Guy
zbobg@juno.com
